'PS 8".
53 DECUS OS/8 SiG NEWSLETTER
DECUS
July Number 13 1975
Contributions and correspondence should be sent to:
Bob Has singer, Coordinator
OS/8 Special Interest Groin?
c/o DECUS
146 Main Street
Maynard, Massachusetts 0175^
REVIEW OF THE SPRING PECOS SlftffPSIOM - QS/8 Special Interest Group Activities
Most of the material in this item comes from a report written by Doug Wrege
for the call for papers for the Fall U.S. Symposium.
An increased effort was made at the Spring Symposium to coordinate panel dis-
cussions and workshops following groups of papers in a given area. There was
a time-sharing panel, a high level languages workshop, traditional PDP-8 family-
workshop, and the familiar OS/8 Special Interest Group meeting. There was a
great deal of interest in time-sharing or multi-user or foreground/background
type applications, both West Virginia University and Georgia Tech reported on
work in this direction.
In the languages session a new rutermediate level language called BLIP was
discussed. It is somewhat like a simple version of BLISS-11. It gives an
intermediate level language between something like FORTRAN and something more
like Bfili8. The generated code is B&L8 code. There was also a great deal of
discussion and interest in OS/8 FOBTRAN IV. Enough to possibly warrant a
separate session for it at the next meeting. There was a Traditional Products
session which consisted almost entirely of pre H)F8e users of FDP8's and
PDP12's. A very active and interactive session with Bob Reed from DEC Tradi-
tional Products was the result. There was much interest expressed in forming
a Special Interest Group to represent the traditional computers within DECUS.
It has been concluded that for the moment this group can be a part of our OS/8
Special Interest Group because almost all current Traditional Products are in
the 12 bit families. Therefore, I have included the first input from N. S.
Kendrick who has been asked to act as coordinator for these activities to get
the group going. Old timers will remember his activities going back many years,
to the days of the original PDP-8. We plan to initially publish this informa-
tion in our Newsletter, along with all other PDP-8 and PDP-12 related
information. The trend seems to be away from strict concentration on OS/8 and
more towards representing the entire spectrum of PDP-8 and PDP-12 problems and
interests. Your inputs on this are solicited. Is this trend go, bad, or does
it make no difference to the future strength and viability of the OS/8 SIG?
July 1975 Newsletter
Before leaving for Miami -we were afraid there would be vary little equipment
from the PDP-8 and PDP-12 family. We knew only that we would have available
a small PDP-8e with TD8e DECtapes for the sake of tape duplication, That
machine arrived but much to our surprise Traditional Products arrived with a
newly configured H>P-12 that they used to announce that the PDP-12 had become
a Traditional Product and that they intended to support it. The users found
the 12 very useful. After hurried calls back home we got LENCtapes sent to
Miami (no one had thought to bring any) so that we had some software to run
on the 12.
A COS-310 system also appeared. S ome of th€; DEC system software people and a
couple of users got together and worked up s. demonstration of a very smal I
network using some of this hardware. A pair of high speed serial interfaces
appeared and were plugged into two of the K»P-8 f s to connect them. Some soft-
ware was installed on both machines to implement a minimal. "DECNEF" between
the two machines. BTS8 was run in both maci&nes with CS/8 running in the
background in each case. The machine with only DECtapes utilized the network
to access one of the floppy disks on the COS-210 system and use it as its
system device. After that the interruptable TD8e DECtape handler called SD8
(see last Newsletter) was modified into an IJTS8 task and installed on the
TD8e system ajd it demonstrated its ability to utilize the TD8e DECtapes while
running under BTS8 and communicating on the network. Incidentally, this net-
work actually ran faster than the H)P-11 netiwork that DEC was officially
demonstrating at the meeting. The reported reason for this was that there
were seme sort of bugs in the PDP-11 system., but the PDP-8 software worked
first try.
HELP!
As you all know, this Newsletter is published too infrequently. The main
reason is that it's a lot of work. If I had a regular input of ready to use
items we could publish on a regular, frequent schedule. Individual items and
regular columns can be submitted. Anytime inhere is enough material that does
not require re-writing and editing to form "the nucleus of an issue I will add
what I can and get it to DECUS immediately.
There are a couple of guidelines to observe when writing articles for the
Newsletter.
1. The DECUS Board has a non-commercialization policy that requires
emphasis be on technical rather than commercial content. The Board
also requires that prices not be given. However, it is all right
to mention if a charge is made for an item.
2. Due to the high cost of printing and mailing we need to try to keep
Newsletter articles short. DECUS underwrites all the Newsletter
costs but as more SIG's form and publish Newsletters the DECUS Boards
will have to take closer looks at the iosts involved. If we all do
our part to minimize costs we can keep this valuable channel of com-
munication open and unrestricted.
#13
July 1975 Newsletter
OS/8 SIG GROWTH
I recently reviewed the SIG mailing list and found that we have srown to over
1100 members. J^re than 200 of the members are in Europe. The availability of
this information sorted by geographical area makes it much easier to help get
Local Users Groups going.
The membership list is considered confidential information by DECUS. Access
to it is restricted and requires a non-disclosure agreement but if you are in-
terested In forming a Local Users Group contact me and we will work something
out to get you the necessary information to get going.
FROM N. S. KEHDRICK, JR, - TRADITIONAL 8-FAM3XY S.I.G.
The interest shown at the Miami Symposium in -updating the older family of 8
products led to the suggestion of a SIG devoted to efforts to maintain program
capability across the product line. Considerable interest was also shown in
acceptable hardware modifications to the 8/e group. For the present, at least ,
it would seem advisable to operate as a subset of the OS/8-RTS/8 group since
these systems provide the main motivation for such work. I will try to serve
as a clearing house for this information and pass on a digest to Hassinger for
inclusion in these Newsletters. If those of you who tinker with the nuts and
bolts of the operating systems will pass along your results to me maybe we
won't all invent the same wheel too many times! (We may even come up with a
round one once in a while.)
Work in our laboratories at present is directed toward the following goals,
hopefully to be complete by the Fall meeting in Los Angeles:
1. Implementation of the BSW instruction on the plain 8 (can't call it
classic anymore) and the 8/1-12 group. The 8/1 seems to be very
simple from a cursory examination of the prints.
2. A complete re-do of the memory extension-time share module for the
8/e incorporating a more intelligent trap as outlined at the Miami
meeting. The design work on this is well under way.
3. Modification of the ETS/8 executive to make use of the new trap.
k. The trap modifications to the S/l-IC group.
Your suggestions and help would be appreciated.
I have recently received a communication from J. Floris Anthoni of The Nether-
lands on their MULTI-8 real time foreground/time sharing background operating
system which seems very interesting. As best as I can decifer Dutch his
address is Medical Biological Laboratory TNO, Lange Kleineg 39? P- 0- Box k5,
Rijswijk, The Netherlands. This is a new hardware/ software system similar to
some of the ideas discussed at Miami.
#13
July 1075 Newsletter
SWEDISH IQCAL OS/8 USERS (BOUP ACTIVITY
Lars Baliier writes me that the Swedish OS/8 LUG is trying to construct a
primitive library for primitive programs. What they intend is to construct a
simple circulation list of programs and routines which are mostly not docu-
mented to the standard necessary to submit to DECUS which might be for other
reasons not submittable to DECUS. These reasons might include such things as
authors wanting to get a reimbursement for their work, or because there is some
sort of bug in the program which makes it unsuitable for DECUS submission.
They are presently experimenting with an unsophisticated circulation list sorted
according to the DECUS category codes, and which includes information like pro-
gramming language, cost bracket for the program, standard of documentation, and
the author *s name and address. It is up to the individual interested in the
program to contact the author. They do not intend to do any kind of distribu-
tion themselves of anything except for the information on the list. This is a
good example of how a Local User Group can provide help for the users in an
area, and it also demonstrates how the Special Interest Group as a whole Can
help various users to exchange programs when they can't submit them to DECUS
for whatever reason.
APVA3S3CED OS/8 SYSTEM DEVELOPMENTS
Since the last Newsletter the hopes for DEC sponsored OS/8 development beyond
the currently planned maintenance update on OS/8, (which is supposed to include
MA.CREL and its loader) seem to have dimmed due to lack of support among the
various product lines at DEC, User interest seems to continue, however. It
may eventually turn out that the users will end up doing their own development
again if DEC doesn't get busy.
Just recently I received a note from Clyde Roby outlining some of his ideas
for such a new system. Clyde's suggestions include the following:
1. It should be OS/8 compatible at least for ASCII sources.
2. The directory should be expandable (or at least expanded) beyond the
present size.
3. The new system should be integrated into an RTS8 type environment.
k. It would require at least 12K 9 kK for tiie RTS8 part and 8K for the
new monitor. It probably could require l6K of memory as most people
can now afford that much memory with memory prices coming down the
way they are.
5. An RTS8 environment allows many nice features such as (a) there should
be a system task call tc get /put characters to any device. It should
be set up so that all devices weald have the same call to get/pat a
character. This would make for very device independent I/O. (b) A
spooling task may be inserted between the user call and the active
device driver ta.cz. to spool I/O. (Note that there has already been some
work done on a line printer spooler which runs in the present 0S/8-
RTS8 configuration).
oiuj t.rfiz> iAeWs-L.ex."oer
6. If the system were set up correctly an entire system should reside in
a .SV file. Users could make specialized systems for their own
different types of applications. They might he similar to the present
/Y files hut would he .SV files which would he "bootstrapped" too.
7. As far as command language syntax goes it would be nice to be com-
patible across DEC's main frame line as much as possible. (Note: DEC
is presently working on defining a new command language standard which
will he distinctly different from any of their existing command
languages. More about this later.)
8. SCAN and WILD (vis-a-vis the PDP-10) could be incorporated into the
RT38 part of the system as an overlay task. Users could then implement
some good programs by calling them via a system task call.
9. About security: As on other DEC software systems for the other main
frames there should be prog/'anmer/project numbers, passwords, and file
access -*ords (read only, deletable, write only, etc.) similar to
DOS-11, TOPS-10, etc.
10. The system should be as real-time as possible with an RTS8 type fore-
ground but where TD8e DECtape and floppy disks are concerned true real
time may be a luxury.
11. No time-share trap should be used! All system calls should be direct
to BTS8.
Clyde is trying to get his version of LPTSPL ready soon but he says the work
load at Georgia Tech is pretty heavy. Also, Clyde suggests there might be in-
terest in a special category in the DECUS catalog for RTS8 tasks. Does anyone
have any such tasks as yet and is there any interest in a special category of
this sort?
MJIffI-8
MJI37I-8 is a real time foreground/time sharing background operating system for
the PDP-8. Plojis Anthoni recently sent me a copy of a manuscript which
describes this system in over -view. He has been writing it over the last couple
of years or so. It has much of the same real time, multi-task capability that
RTS8 provides, and like RTS8 it also provides the ability to run OS/8 in the
background. What is different is Lnat the background OS/8 can be multi-user ,
that is tnere are multiple OS/8 ^o> > that are swapped in the background so that
you effectively get a time-shared 03/8 system plus a real time foreground
capability. One of the more interesting features of the foreground capability
is that there are swappable tasks which are kept in a sort of a library on the
disk and they ^re brought in when they are required. The most interesting
feature here is that they are not required to load into specific core locations,
as with the new version of RTS8 but rather the tasks are organized in a page
relocatable way which is very efficient and very simple to use. The system
allocates core dynamijally at the time that tasks are loaded, and it frees the
space used when the task terminates itself. I am hoping to be al.? e to get more
information on this system and tc explore what sort of plans the author has ::*or
making it available before the next Newsletter.
#13
July 1975 Newsletter
STAlffiARDIZING FOREGROUND IOT's FOR OS/8 IACKGROUMD PROGRAMS RUNNING UNDER
B3S8 AMD OTHER FOREGROUKD/BftCTCGROUKD OPERATING SYSTEMS
As more aad more foreground/background type software is written and becomes
available, there is an increasing need to agree on some sort of conventions for
assigning the IOT codes that are used to make calls to the foreground or
operating system. The same type of calls are presently made by the TSS8 (EDU-
system 50) software. These calls are similar to the type of calls one might
make to a larger computer's operating system, but they are implemented as
psuedo IOT's in the typical PDP-8 system because the instruction trap is
normally used to implement such a system and it provides the most eonvenitit
way to ccsmnunicate from the background program to the foreground. Presently
we have RTS8, MULTI-8 has been announced, OMSI is working in this area, EDUcomp
is developing a similar sort of system, and various people are writing routines
to go *?ith RTS8 and other similar environments. In each case arbitrary selec-
tions are being made by the authors for the IOT codes. Obviously in the future
there will be many conflicts unless we can agree on conventions. If you are
working in this area, or have ideas, please send them along and we will try to
coordinate «nd gain some sort of agreement on how to approach this issue.
CUSTOMIZING CCL FOR YOUR INSTALLATION
Lars Palmer has included in his most recent letter to ^.e some information about
how his installation has customized their version of CCL to suit their uses and
their mode of operation. He thinks that this sort of Information would be
useful from many different users as each installation has their own special
needs. His changes are as follows:
1. In their system (which is a disk system with a floating point pro-
cessor) their main software is FORTRAN IV. To optimise FORTRAN IV
usage they have made several modifications to CCL.
P.. The TECO and MIKE commands default to FORTRAN (.FT extension).
B. A call to FRTS on the .ID extension has been added to the system.
C. The default mode alt -mode in the EXECUTE command has been removed.
They find that It causes a lot of trouble: oecanse it leads to
(l) the annoying forgetting of file specifications with FORTRAN IV
and (2) he has had difficulties as mentioned elsewhere finding a
way to pass an alt-raode in the BATCH fila.
D. They have changed the order of searching for file name in such a
way that the EXECUTE command always defaults first to the .LD then
to the .RL and finally to the .FT extensions and then to the other
file name extensions that are normally checked. This means that
he gets the sort of operation that you would probably like best in
a FORTRAN environment. If a .LD file exists then it is executed
directly and so on down the line. If only a .FT file exists it
will be compiled and loaded and executed, etc.
#13
July 1975 Newsletter
E. They have modified the COMPILE and EXECUTE commands in such a way
that the default output- file is on DSK: . This means that it is
possible to do a COMPILE TEST followed by an EXECUTE TEST which
will pick up the compiled version, What is happening here is that
normally the default onput file for some of these commands is SIS:
rather than DSK: and in a system wher* these two names refer to
different devices, you normally can't do what you would like, I
find this true 5n my DECtape system in particular where the distinc-
tion between the two devices is the normal way of operating the
system.
2. They have found the DrLETE command is very dangerous, particularly in a
disk system where it executes very quickly. Files disappear- before you
have a chance to think about what is happening. This is even more so
where they have a 2hQO baud console on which the file names go by very
fast as they are output from the delete function of FOTP. Therefore,
they have included the /Q option in the DELETE command so that it always
forces you to answer "yes" or "jo" to each delete. In order to allow
for deleting in those cases where you are sure of what you want to do,
such as in a BATCH file, they include a new command which they call
KTTtTiX which works the wa_> the old version of the DELETE command works,
loug ¥rege f s newest version of DECsystem-8 has made a slight change to
the DELETE command also. Whenjou specify a delete of a single file
(i.e., no wild card specifications) he goes ahead and deletes the file
in the normal way. But when you specify wild card specifications so
that considerable numbers cf files might be deleted, then the /Q option
is automatically forced.
3. The DATE command has been implemented in such a way that it runs a
special BASIC program which writes a TECO MACRO which includes today's
date. Then when you do a TODAY file-name, TECO will do the normal EB
on the file but with today's date inserted as a comment at the top of
file. The default comment character is a C as in FORTRAN code, but any
comment letter can be passed to the file. He includes a listing of the
BASIC program with his letter. If anyone is interested in it let me
mow and I will send a copy. To make this work he has to inhibit the
chaining test in BASIC. This is done by changing location 7001 in the
BASIC save module to 7000 (NOP) with this change the program will work
in all cases except if DATE is given under BATCH.
k. As mentioned under the paragraph on EXFTP Lars has implemented UPDATE
and MOVE commands which are very convenient in certain situations.
5. Lars uses an off-line paper tape punch where paper tape is punched which
is read in for revision later on the computer. They have a special
handler which does some editing on the tape as it is read in. This is
actually a modified version of the new 2-page teletype handler. To
simplify reading the data in from the paper tape reader they have
implemented a new command FETCH which will simply fetch a file from the
July 1975 Newsletter
paper tape reader giving it the name which is the argument that goes
with the command. It will use the special handler by default. If a /A
or /B option is given then PIP will use the normal paper tape reader
handler.
6. Re has taken the PRIST command and arranged it so that it utilizes Clyde
Roby*s PRINTR program for formatted printing of files on the line
printer.
7. Lars has also implemented a DUMP command, which will output in octal
form. Doing DUMP A,B will output a listing of the differences between
files A and B. This is implemented using the program OCOMP which is
available from DECUS as 8-608.
EXPIP
Lars Palmer from Sweden has submitted a new version of his EXPIP program to the
DECUS Library. It is a PIP type program that has features that neither PIP nor
FOTP have. It allows wild card specifications for file name extension in
particular. It contains several features that are nice for people with two
DECtape systems that make moving files around more efficient. It has a command
that permits merging files which is sometimes very nice using wild card file
name extensions. There's an option to transfer files only if there is not a
file of the same name on the output device with a more recent or the same date
as the input file and there's au option to never transfer a file if there is a
file of the same name on the onput device. There is an option to remove the
input files from the input device after the transfer has been completed
successfully. Another variation on this is to transfer files only when there
is a vcre recent version than the version that exists on the onput device. The
Q, option as in FOTP gives you a chance to decide on each individual file and
you can specify today's date for the new onput file. The quals option lets
multiple copies of a file to be made. This means that a listing function could
be implemented to produce several copies of a file on the printer automatically
from one call. Lars says that using this program he has implemented two new
commands under OS/8 version 3 and CCL - these aie UPDATE and MOVE. These
commands do what their name suggests, he says. UPDATE will write new copies
of files on the onput device that already exist there in older versions and
MOVE will do what COPY does but after doing the copy it deletes the input file.
I find with a limited DECtape system that these commands can be very useful.
I think we have finally solved the problem the DECUS Library was having with
EXPIP also. There have been difficulties with tapes from Lars* part of the
world coming through unreadable. Something has been happening somewhere along
the line to some of them but the current tape seems to be all right .
SOFTWARE UNDER DEVELOPI-SNT BY LARS PAIMER
Lars Palmer has written about several routines that he is working on. He hopes
that some of them will be released to DECUS in the future when he has a chance
#13
#13
July 1975 Newsletter
to document them properly. In the meantime, he has sent along a short summary
of what they are about and if anyone is interested they can contact him.
1. A small routine BGET and BRJT which allow you to utilize the 36 in-
dividual bits in a floating point word under OS/8 FORTRAN IV. The
routines are called exactly the way CGET and CPUT are. This
routine allows you to use a very large number of logical variables
as in a program such as Conway's game of life.
2. A small routine called FILE SIZE which will communicate to the
FORTRAN 17 program the size of the different files given at run time.
It will also cell you if a certain file number is associated with
one of the internal, handlers built into the run time system.
3. A number of small routines modeled on the PDP-12 routines available
in the FORTRAN IV Library but written for the PLP-3e digital inter-
face. Utilizing the routines in a special patch to the run time
system he has also implemented the possibility of reading command
decoder switches into the FORTRAN program- This makes it possible to
modify the action of a FORTRAN program in a BATCH file. At the moment
the communication is via the MQ register but Lars says that it's a
trivial modification to change this.
Another program that Lars has functioning which he will make available to DECUS
as sooa. as the documentation is produced is a program for filling in forms on a
high speed VT05, a blank version of the form is written and kept in a file.
The program displays the blank form on the VT05 face which then is filled in
appearing write protected in all places except the fields which are to be filled.
The filled in information is then written to a file and can be used for further
editing. He says this gives a very fool proof way of inputting data to be used
by other programs. The program is written in FORTRAN H and requires 12K and a
high speed VT05- A disk is an advantage but not necessary. However, it must
have a second logical OS/8 device besides SIB:.
SSP THS SCIENTIFIC SUB-ROUTINE PACKAGE
In the last few months there has been a lot of interest in the Scientific Sub-
routine Package which is available on many computers. I understand it has been
placed in the public domain by IBM. Apparently it exists in at least two
different forms. One for the IBM 1130 and one for the IBM 360/370 family.
Apparently the 1130 version is a subset of the full version. Dr. Arthur
Stiennon has written to tell me that he managed to convert the 1130 package for
OS/8 FORTRAN IV successfully. He is planning to make his work available for a
nominal fee, I believe. Tom Maclntyre also indicated that some work had been
done in this same area at West Virginia although he has not mentioned any plans
to make x.t generally available. Since then I have been talking to Dave Todd,
who is heading up the efforts of the PDP-10 Main Frame Group to improve the
PDP-10 part of the DECUS Library. As it so happened, Dave also is the most
recent submitter of the SSP for the PDP-10. This is listed in the DECUS catalog
#13
July 1975 Newsletter
as 10-101a now. The difficulty with that package for the rest of us has always
been that it was only available on l/2 inch magnetic tape in FDP-1G FAILSAFE
format so it was not readily accessible. Dave has converted the package to 5
PDP-10 format DECtapes for me. I have converted the files to OS/8 format DEC-
tapes (six of theal) and I have fixed some of the more obvious compatability
problems. If I can find enough DECtapes I hope to submit the package to DECUS
later this summer.
HEWS FROM OMSI
Rusty Whitney from OMSI recently wrote me asking to mention in the Newsletter
that a routine for reading BCD data from a half -inch MAGtape and also a routine
to handle the Xl8e plotter which works under OMSI's PS/8 FOCAL are both avail-
able from Harold Cronin, Code 602, Naval Weapon Center, China Lake, California
93555.
At the Spring Symposium OMSI also revealed that it has been working on a multi-
user OS/8 system. No details are available as yet and I understand there is
still development work to be done.
MATERIAL FROM. JIM CKAPUUHKt'TKS
Jim has sent along a couple of patches for the FORTRAN 17 run time system. One
of them allows you to control the INPUT ERROR condition which normally, when
detected, causes an abort of the program. When you are writing a program that
is designed to collect data from manual input and record it in a file this is a
bad feature of the system because any input format error can cause the program
to abort and then you end up losing all of the data that you input.
Jim also included a set of ODT patches which cause the FORTRAN run time system
to ignore both the default input format specification and spaces in the input.
He says that this allows truly free format input from the keyboard although it
does not adhere strictly to the FORTRAN specification. Together the two patches
make a nice data inpat package for keyboard input to FORTRAN.
Jim is in the process of making some changes to his version of TECO. He is
going to try to make it compatibxe with the DEC version. His work is aimed at
new features related to I/O that will make it more powerful than DEC's TECO.
He plans on such things as multiple input files, square brackets specified
length for the output file commands, and the ability to reset the input file to
the beginning. He will also allow a ":" to modify a file command so it returns
a succeed or fail code rather than giving an error. Jim is interested in
suggestions for changes or additions in connection with this work. Anyone
interested can reach him at Frelan Associates , P.O. Box 298, Menlow Park,
California 21*025. Jim has also included a fix for his program FUTIL which is
in the DECUS Library.
10
#13
July 1975 Newsletter
INFORMATION FROM REVEREND CHASE
Reverend Geoffrey Chase from the Portsmouth Abbey School wrote recently to mcke
a couple of suggestions and to pass on a coding technique which he has found
useful. First, he noted the error in the recent Digital Software News in a
patch to CBEF which was stated as a 701^ when it should be a 7012. Second,
Reverend Chase suggests that in the future DEC should do sca*eth:dag to make the
length of the string that you can pass to DECO using the MDHG cons-and longer.
Apparently when the SfflSKx command was designed no one anticipated the need to
pass longer strings, but it seems possible to do it.
Reverend Chase wondered about what the system does when you load a handler over
a previously loaded handler. The documentation seems lacking on this point.
As an example, if you were to load the LPT: handler over the DECtape handler
what would happen. It turns out that the system is clever enough to know to
delete all 8 entry points of the TCC6 handler from its residency table. Oddly
enough very few people really know that this is true. Apparently it was put in
the code back in the PS/8 days and it's been there ever since waiting till it
was needed. Reverend Chase has passed along a neat coding trick which many
people are not aware of for OS/8 FORTRAN II. As you know, OS/8 FORTRAN II in-
tegers are limited to 12 bits. Reverend Chase's coding technique gives a quick,
easy, fast way to take the integer part of floating point numbers which of
course can give a 6 digit magnitude. His demonstration program for computing
prime numbers also gives a quick way to get a vertical tab on the teletype.
NOTE FROM BILL KAUFMAN
Bill Kaufman from Mobil Research and Development has sent along information
which includes the following; A version of LEB8.RL which includes his software
to use the FDP-8e EAE for subscripting, integer multiply and divide, 27-bit
floating multiply and 23-bit floating divide (both using the standard FORTRAN
II format) . I/O device 1 obtains input from the batch file when batch is
active. Device 3 supports I/O to an ADDS 880 page buffered CRT, and devices
5 and 6 represent TC58 tape drives and 1. This handler writes 80,80 EBCDIC
with blocking of only records that are less than 80 characters.
Bill has also sent a slow running cross-reference program written as a TECO
MACRO for use on FORTRAN II programs which produces an interesting side-by-side
type of listing with both the FORTRAN and part of the assembly code listed.
LETTER FROM ALBRECHT LOMMEL
Mr. Lommel from Zurich has written to tell ug about some contributions he has
made to the library and to inquire about the possibility of the availability
of certain FORTRAN IV software. He has submitted four programs to the library.
First, "FASTAD" fast data collection, "W)ATA" for writing 12 -bit binary data in the
form of normal 256 word OS/8 blocks on the system device , "RDATA" to read this
11
#13
July 1975 Newsletter
data under FORERAN II and "ItxiO" the necessary I/O package for serving the
teletype. He says he would like to know whether any or the FORERAN IV users
has software for the ADOl-AP A/D converter and whether they have changed the
necessary modules in the FORTRAN IV package so that the real time capabilities
for data acquisition can he used with this type of converter.
SUGGESTIONS AND COMMHEES FROM DR. G. M. HODGSON
Dr. Hodgson recently wrote with several suggestions and ideas. Among others
he was interested in the idea of reviewing DECUS Library materials. He
suggests a review sheet for use in reviewing program that would include the
following information:
1. The reviewer's equipment configuration and version of the software
used to assemble the DECUS program.
2. The experience of the reviewer.
3- Problems found with the program when compiling, loading, starting
up, running, input /output, and accuracy results.
h. Restrictions found that are not noted.
5. Comments on adequacy of write-up.
6. Corrections, suggestions, patches, additions, changes to the program
or write-up.
7. Recommendation for retention in library.
He suggests that if this information is to be valuable it needs to come from a
broad base. Once a sufficient number of replies for a particular, program have
been received, a summary evaluation form could be prepared. It should indicate
how many persons had evaluated the program. This would be attached to the
program write-up. Once the review process was underway an evaluation sheet
would be sent out with each program when ordered. Periodic updating of the
evaluation would be included. Alternatively the evaluator could request his
comments be added to the summary sheet if he thought his problem with the
program was severe. If the evaluation indicated the program was to be eliminated
from the library, the author would have the option to correct and re-submit it.
An evaluation process might limit the number of programs submitted but
Dr. Hodgson thinks that they would be of higher quality. Some of this sugges-
tion parallels earlier efforts but perhaps with new emphasis it could be made
to work better than it did in the past. Some of his ideas may or may not be
popular. I think though that this is a good place to start on gathering ideas
on the subject and I'm still soliciting more inputs from everyone who has an
interest .
12
#13
July 1975 Newsletter
Dr. Hodgson also suggests that -we neec *\ process to alert users to updates of
programs. The cost of such a review process might increase the price of the
DECUS service charges, he thin 1 - However, he suggests that if the result is
a more reliable program that the higher cost would be offset by less time
spent getting the program to operate. This Idea ccmes up from time to time,
that of asking DECKS to find a way to alert people who have previously received
a copy of a program to updates of it. If you find that is something that you
think would be valuable for the library to try to do, let me know. It would
require considerable effort on the part of the staff that operates the library
and would most likely increase costs of operation of the library substantially,
but it's possible that there are enough users who want this service so that it
should be considered.
Dr. Hodgson has made several suggestions regarding improving the quality of the
write-ups that go with library programs. First, he would encourage including a
flow diagram with the listing so as to enable users to understand how the
program was designed and aid in locating the problems as they occur. And
second, if the program makes calculations the author should include a test
problem with its results. This will speed acceptance in checking the program
by the new user. I find flow diagrams are hard for some people to prepare and
some programs would be quite difficult to fully document in that way, although
certainly we should encourage it wherever possible. Do you think that requiring
flow diagrams is worthwhile considering that such a requirement might discourage
submissions? I certainly agree with Dr. Hodgson on the second point. Authors
should provide a generous supply of examples and tests that a user can run to
verify that the program is working and to see how it is intended to be used, at
least for some simple test cases. Many of the widely recognized OS/8 submis-
sions *s the library have such examples and I think the popularity of the
programs have been enhanced Vy the availability of the examples.
The final area that 3>r. Hodgson is interested in regards the problems of a new
user. Zi finds, for instance, that as a new user it's hard for him to discover
how PAIS difference differs from PAL3, PALD, or PAL10, or how FOCAL 8 differs
from FOCAL 1968, FOCAL 69, or FOCAL W, or even how OS/8 differs from PS/8.
Also learning things such as the difference between a PDP-o^and the earlier PDP-
8 * s . He needs to know what sort of software d: f f erences there are between the
machines. He says that he's not aware of any source of this sort of informa-
tion although he suspects that some of it might be available in a DEC training
course, but in *rany cases people don't get to go to those training courses
because of the way they purchase their systems, or because they aren't the first
person to use the system, and the training credits have been used up. Basically
the problem here is help for the new user. This seems to be an area that the
Special Interest Groups can help with considerably. What we could to is to ask
for volunteers in various parts of the country to offer a little bit of help,
perhaps on the phone, to new users who need it and to make information available
to new users as to who the volunteers are who will give thep advice and answer
their questions. It seems that this is useful judging from the experience of
other user groups. Supposedly DEC software support gives this kind of help but,
in general, it doesn't work out too well because the software support people
really don't seem to know that much about OS/8 either. As we hopefully build
up some Local User Groups within the OS/8 Special Interest Group they could be
13
#13
July 1975 Newsletter
focuses for this sort of help. If we get some volunteers we may be able to
name a HELP coordinator and that part of the OS/8 SIG might choose to sponsor
or organized a tutorial session at each DECUS Symposium to help the new users.
This is now being done in the case of the PDP-10 sessions, for instance.
NOTE FROM I. M. TFJgPLEION
Mr. Templeton has sent a short note which I will attach to the Newsletter
which he thinks may be of interest to OS/8 users who have a simple cassette or
tape unit for backup storage. The device he refers to in his article is a
Progressive Systems "ZIPPER" cassette unit for which he has record and replay
device handlers available also.
SHt«s FROM. IAR3 PAIMER
Lars Palmer has written with a summary of some SHl's that he had submitted to
F^C from time to time- He has not received answers to these SFR*s.
1. It is impossible to pass an alt-mode (dollar sign) from the EXECUTE
command under BATCH to a FORTRAN IV* program. This is a restriction
of the system which DEC has ansvsred but Lars is not satisfied with
their answer. He says that it means that it is impossible to run a
FORTRAN program under BATCH which requires file input. (Note: Check
Digital Softwave News, April *75* for possible solution.)
2. Certain restrictions exist in CREF when it is used with RALF input.
In RALF it is possible to have a symbol followed by a comma in places
where it is not the definition of the symbol. CREF misinterprets
this and will take the latest such reference to be the defining of
the variable.
3. There are some problematic restrictions in RALF. Certain codes will
not assemble properly. In some cases RALF will assemble a two-word
reference when it should assemble a one-word reference. It will also
sometimes give a redefinition error when there is no redefinition in-
volved. He has sent an SPR on this question but has not received an
answer. (Note: Some of this problem may be explained by an obscure
note in the 03/8 Handbook at the bottom of page 5-22. There they tell
us that the location of the base page via the BASE psuedo op and the
location of operands using 0RG= must be defined in the coding before
an FPP instruction refers to them. When this is true then the short
form of the instruction is assembled, rather than the long 2-word
form. Essentially this seems to mean that all of your variable
storage wants to be defined and your base register ?»rea wants to be
defined before the code that references it. This "feature" of RALF
can be most puzzling to a programmer who is accustomed to an assembler
like PAL8 where it doesn't matter whether the symbol is defined before
Ik
#13
July 19*75 Newsletter
or after the instruction that refers to it. It's particularly surpris-
ing because the information that gives you the clue to what is going on
is so well hidden in the documentation. Of course this is true of many
aspects of HALF and I hope we can encourage DEC to do something about
that.)
k. If, by mistake, two inputs files are defined to the FORTRAN IV compiler
(when the first one is the only one required) the compiler halts. The
solution is a simple patch which follows;
Gi7h/XXXX T7$$
6^33/1255 127^
5. Lars has problems with the FORTRAN n loader which refuses to load
properly if there is a software core size set in the machine. As
OS/8 BATCH sets the software core size equal to the BATCH field it
means that he cannot do a FORTRAN H load under BATCH at the present
and he does not understand why. (Check Digital Software News for
possible answer.)
SER REGARDING FORTRAN II LINKING LOADER
This SHI was submitted by Albrecht Lommel the 20th of March 1975- The problem
is that a FORTRAN program which runs under OS/8 version 2 correctly does not
run with the new release - that would be OS/8 version 3. The source of the
progr&a has lieen compiled and reassembled under the new software . The diffi-
culty it* that the new release cf the loader does not seem to load the program
correctly. The new program requires more than 8K and the difficulty seems to
be that the loader is not correctly recognizing more than 8K of core. He sai's
that this version of the FORTRAN II loader was not able to form a correct core
control block. It was necessary to get a map to insert the explicit arguments
for the monitor SAVE command to get a correct saving of the program on the
system device. This seems to continue to be true in spiie of the fact that
the patches for the FORTRAN H compiler SABR and LOADER published in the
February 1975 Software News have been made. (Note: Digital Software News,
July '75 FORTRAN II #3 might fix this.)
SHI REGARDING DIFFICULTY WITH OS/8 BATCH ON A 32K SYSTEM
This S'tft was submitted on the 29th of April, 1975. When OS/8 BATCH is run on
a 32K system it sets the software core size to the top of field 6 rather than
the top of field 7. The first problem is that BATCH cannot utilize the entire
32K system but will only utilize 28K of such a system. The second problem is
that when BATCH terminates it leaves the software core size set to the top of
field 6 rather than restoring the full 32K capability of the machine. Thus,
the only way to recover the use of the rest of the core is to use a CORE
command to regain the last space. This must be done manually. The CORE com-
mand is illegal under BATCH.
15
#13
July 1975 Newsletter
I have gust received an answer to this SPR dated 26 June 1975 (9 weeks!). It
given a temporary fix. If anyone needs it let me know*
SPR REGARDING A BUG IH THE OS/8 FORTRAN IV LOADER
I submitted this SPR to DEC on the 29th of April and received an answer very
quickly. Apparently the article that they sent back as an answer was already
in preparation at the time the SPR was received. The answer is scheduled to
be published in the July, 1975 Software News.. The OS/8 FORTRAN IV loader
version 22 does not obey the software core size correctly.
SPR REGARDING DOCUMENTATION OP OS/8 FORTRAN IV STATEMENT FUNCTIONS
This SPR was submitted on the 29th of April, 1975 and no answer has been re-
ceived to date. The OS/8 Handbook states that arguments to statement functions
are "dummy" arguments and then goes on to say that they should not be refer-
enced outside the statement functions. Actually what happens is that the
arguments are not what we would commonly think of as dummy arguments. The name
used refer to the same "variable as the name -refers to in the rest of the
program. In other words, the "scope" of the arguments includes the entire
program rather than Just the statement function. This appears to be inconsis-
tent with the FORTRAN IV standard. You should be careful when using statement
functions to make sure the "dummy argument" -variables are referenced no where
except in that statement function, or else you should check the generated code
to be sure that nothing is happening that you had not anticipated with respect
to conflicts in the naming of your variables and their storage.
SPR REGARDING THE FORTAN IV COMPILER MAKING iiERORS WELLE COMPILING STATEMENT
FUNCTIONS
This SPR was submitted 29, April 1975 and no answer has been received to date.
The FORTRAN IV compiler seems to make compilation errors under certain condi-
tions when it is compiling statement functions. In an example that was included
with the SPR there was a statement function iefinition which included a call to
a function from the library. One of the arguments given to the library function
was an argument that had been passed to the sub -routine. If you study the
compiled code very carefully you discover that the internally generated location
of tags gets confused and the program ends up branching to an incorrect location.
It appears that this problem can be avoided by setting a local variable equal
to the argument passed to the sub -routine giving you a local copy of the
variable. In this case it appears that the compiler does not make the same
error.
SPR REGARDING THE FORTRAN IV COMPILER
I submitted this SPR to DEC on the 29th of April, 1975 and no answer has been
16
#13
July 1975 Newsletter
received as yet. This SPR involves a very subtle problem that took many hours
to track down. Under certain conditions the OS/8 FORTRAN IV compiler generates
code involving EXTERNAL type variables incorrectly. When the EXTERNAL type
variable is passed as an argument to a sub-routine, code which uses the value
of that EXTERNAL variable may be incorrect and cause the system to blow up when
the EXTERNAL routine is called. The conditions under which this happens are
when the compiler places the storage for the external type variable after the
sixth variable in the base register area. Those who have looked carefully at
the assembly code generated by the FORTRAN IV compiler, and who understand how
the FPP code works know that in sub-routines six variables are placed in six of
the first eight base registers and then the balance of the variables are
pointed to by the registers above that, the difference being that the FPP can
use the first eight registers in ways that it cannot use the rest of the
registers. For this reason, the code that references the first eight registers
works differently than code that references the other register-. The compiler
allocates those first six registers first for arrayed type variables because
those are the only registers that can be used to access arrayed type data.
And, then after all of the arrayed type variables are taken care of then the
compiler starts taking simple, undimension variables, in order that they are
declared in the argument list. In order to avoid the problem that this SPR
reports it seems necessary to have the total of the dimensioned variables
named in the argument list, plus the number of EXTERNAL type variables total
no more than six, and the EXTERNAL type variables should come before any other
nondimensioned variables in the argument list. If you think you have a problem
with this and you don't see an answer to it from DEC but you don't really under-
stand contact me and I will try and make it clearer.
17
£13
OPERATION CF BLOCK-ORIENTED, NON-FILE-STRUCTURED
STORAGE DEVICES UNDER OS/8
I. M. Temple ton
Division of Physics
National Research Council of Canada
Ottawa, Canada, K1A ORb
It appears that the most satisfactory way of sensing an
end-of-file condition on playback from a block-oriented, non-file-
structured device is for the data to terminate before the playback
buffer is filled. The rest of the buffer is then filled with zeros
and a non-fatal error return taken. This approach necessarily rules
out use of the /A (Ascii) or /B (Binary) modes under PIP. except for
very short files, since the playback buffer is larger in both cases
than the record buffer. This results in automatic termination after
one output buffer is replayed.
The /I (Image) mode is not subject to this limitation since the
size of both record and playback buffers is the same (640Cg words,
or 13 10 OS/8 blocks). In this case, however, another problem occurs
if the stored file is any multiple of 13 i blocks in length (e.g. CREF.SV) ,
since no unfilled buffer end-of-file condition can occur. The system
then continues to read subsequent files until a terminating condition
is found. This problem can be overcome by artificially increasing
the size of any such file by the use of the /l~n option under F1P.
The command *CREFA.SV<CREF.SV/I-16 creates CREFA.SV, 14m blocks in
length, which can be recorded and replayed correctly with no change
in performance ,-
18
#13
/"INPUT ERROR" CHANGE FOR FP.TS PALS-V9B 06/3C/75 °AGE I
/"INPUT EPPOR" CHANGE FOP FPTS
/BY:
/ JIM CPAPUCHETTES
/ FRELAN ASSOCIATES
/ P.O. BOX 298
/ MENLC PARK* CALIF. 94025
/ THIS PATCH FOR VERSION 3 CF FP.TS CTHE RUN-TIME
/ SYSTEM FOR OS/S FORTRAN IV) CHANGES THE ACTION OF
/ AN INPUT ERROR C ILLEGAL CHARACTERS IN THE INPUT
/ STRING) WHEN THE INPUT DEVICE IS THE TELETYPE AND
/ THE LIBRARY FUNCTION "CHKEOF" HAS BEEN CALLED.
/ UNDER ALL OTHER CONDITIONS* THE "INPUT ERROR" MESS-
/ AGE IS OUTPUT* FOLLOWED BY AN ERROR TRACEBACK AND
/ ABORT TO OS/8.
/ USAGE OF "CHKEOF" WITHOUT THESE MODIFICATIONS
/ IS DESCRIBED ON PAGES 8-50 AND 3-51 UF THE OS/5 HAND-
/ BOCK. AS WITH THE STANDARD VERSION* '"CHKEOF" MUST
/ 3E CALLED 3EFORE EVERY FORMATTED READ TO ALLOW TEST-
/ ING FOR THAT READ. AFTER THE READ* THE CONTROL VAR-
/ IABLE WILL INDICATE WHAT HAPPENED DURING THAT READ
/ AS FOLLOWS:
/
/ VALUE MEANING
/
/ - ERROR IN INPUT STRING (TTY INPUT ONLY)
/ 3 ALL INPUT DONE CORRECTLY
/ + EOF CCTRL-Z) FROM INPUT DEVICE
/
/ WHEN THE VALUE OF THE CONTROL VARIABLE IS NON-
/ ZERO* THE VALUES OF ALL VARIABLES READ SHOULD BE
/ CONSIDERED TO BE QUESTIONABLE.
/ SEE THE NEXT PAGE FOR A SHORT EXAMPLE PROGRAM.
19
#13
/"INPUT ERROR" CHANGE FOR FRTS PAL8-V9B 36/3 5/75 PAGE 2
/C PROGRAM TO TEST CHANGE TO INPUT ERROR HANDLER
/
/I 00
T -fRITE <0*1I00)
/l 13^
/
/
F Q r '?4AT ( * I MPUT VALUE S • / >
SUM=
/
DO 290 1 = 1* 100?
/2 I 3
VF.ITE C0*!110> I
• 1113
FORMAT <I5*2X$)
/
CALL CHKEOF C I ERR )
/
READ (0*1 1 20 ) VALUE
/I 120
/
/C IF
FORMAT (G14.6)
IERR = 9, ALL GK. IF I ERR < 0* INPUT ERROR* SO RETRY.
/C
/
/
IF IERR > 3* EOF CCTRL-Z) SO INPUT DOME.
IF (IERR) 210*293*330
/2 93
/
SUM= 5UM+ VALUE
AV ER AG = SUM / ( I - 1 )
/
VRITE C0 * 1 2 1 5 VJM* AVERAG
/121J5
FORMAT C0SUM - ^Gl^^** AVERAGE = f *G14.6//)
/
GO TO 100
/
EMD
20
#13
/"INPUT ERROR" CHANGE FOR FRTS PALK-V9B 36/35/75 PAGE 3
/OVERLAYING FRTS WITH THESE PATCHES
/
/ i. ASSEM3LE THIS SOURCE FILE WITH PAL8
/
/ .R PALS
/ *IWERR<INERR
/
/ 2. OVERLAY US IMG ABSLDR
/
/ .R A3SLDR
/ *DEV:FRTS.SV/I
/ *INERRS C THESE PATCHES)
/
/ 4. UPDATE FRTS VERSION
/
/ .ODT
/
/ 55 34/ 43 43 3043 C CHANGE " " TC "X ">
/ ?C
/
/ 5. SAVE NEW VERSION
/
/ .SA DEV:FRTS -757?> 1 2333-1 3777, 1 5403-1 7577 £233=2300
/DEFINITIONS FROM FRTS:
3316 VEOFS:-7= 16
33 25 EOLSV= 25
33 34 ERR= 34
3336 MCDF = 36
3133 HAND= 103
3143 LIT43= 143 /ACTUALLY A PAGE 3 LITERAL
3323 TTY= 323
21
#13
/"INPUT ERROR" CHANGE FOR FRTS
/ACTUAL CHANGES TO FRTS:
PAL8-V9B L 6/3 5/7 5 PAGE 4
/CHANGES TO IjCEjF INPUT CONVERSION ROUTINES
2/135 *2435 /'IMER* - OLD ERROR CALL, ILLEGAL CHARACTER
32435 5243 JMP INERl /GO A SAFE PLACE TO CALL NEV SRRO:
2443 *2440 / , INDCPT , +2 - TtfO DECIMAL POINTS SEEN
32443 4773 INERl > JMS I AINERi /CALL NEH ERROR - SAFER PLACE
2536 *2536 /'INE'*1 - T T ^0 "E"S SEEN
32536 5243 JMP IMER1 /CO CALL NE*.-J ERROR
2573 *2573 /'INESV+I - WAS FREE
32573 7433 AINERI* INERX
/CHANGE TO L INPUT CONVERSION
2633 *2633 /'LINGCH'+il - ILLEGAL CHARACTER SEEN
32633 4763 JMS I AINER2 /CALL NEW ERROR ROUTINE
2763 *2763 /'HC^'+l - WAS FREE
02763 7430 AIMER2, INERX
22
#13
/" INPUT ERROR" CHANGE FOR FRTS PAL3-V93 36/35/75 PAGE 5
/CHANGE ADDRESS OF INPUT ERROR CALL IN ERROR LIST
4614 *4614 /HAS 'INER* - ADDRESS CORRESPONDING TO
34614 7437 INERR / "INPUT ERROR"
/CHANGE LINK WORD TO •LPBUFE*
7371 *737 1 /AT END OF *LP3UF4' (PLAIN VERSION)
557371 7422 LPBUFE
/ADD NET-' ROUTINE AT THE BEGINNING QF THE LPT RING
/ BUFFER SECTION. REQUIRES THAT THE LINKS TO THIS
/ SECTION ALSO 3E CHANGED TO NEW 3UFFER START.
7403
*7430
07400
0330
INERX,
3
/SPECI
3T431
7203
CLA
37*32
1103
TAD
HAND
0743 3
1221
TAD
i-'TTY
07434
7653
SNA
CLA
37435
1016
TAD
VEOFSW
37436
7453
SNA
07437
4434
INERR.,
JMS
I ERR
07413
44 36
JMS
I HCDF
3741 1
3212
DCA
.+1
07412
7402
HLT
07413
7240
STA
37414
3417
DCA
I VEOFSW + 1
07415
6201
CDF
07416
1140
TAD
LIT43
37417
3025
DCA
EOLSW
07423
5600
JMP
I INERX
07421
7463
MTTY*
-TTY
7422
LPBUFE =
.
/NEW S
/SPECIAL HANDLING FOR INPUT ERROR
/IS THE INPUT THRU THE TTY?
/YES, HAS SWITCH BEEN SET?
/NOT TTY OR NOT SET UP
/TTY & SET UP* HAKE A CDF
/EXECUTE THE CDF TO THE
/ FIELD OF VARIABLE AMD
/ SET MANTISSA TO 7777*0
/ WHICH IS NEGATIVE.
/NOW SET 'E0LSV TO A SPACE*
/ FORCING REST OF LINE TO
/ SPACES CEOLINE* RESETS IT)
/NEW START OF BUFFER SECTION
23
#13
/"INPUT ERROR" CHANGE FOR FRTS PAL8-V9B 06/35/75 PAGE 6
3301 FIELD 1
/CHANGE TO 3>D INPUT CONVERSION ROUTINES CD. P. FPP ONLY)
6453 *16453 /'DIND'+l - DOUBLE "D"S SEEN
16453 5321 JM? DIMERR /GO TO MEV ERROR CALL
6516 *16516 /•DINER' - ILLEGAL CHARACTER IN INPUT
165 1 6 5321 JM? DIMERR /GO TO SAFER PLACE
6521 *I6521 /'DIDCPT'+2 - TWO DECIMAL POINTS SEEN
16521 4763 DINERRj. JMS I AIMER3 /CALL NEtf ERROR ROUTINE
6563 *!6563 /'DINESW+l - ? MS FREE
16563 7433 AINER3* IMERX
/CHANGE LINK WORD TO 'LP3UFE*
7372 *17?72 /AT END OF 'LP3UF7' CEAE OR FPP')
17 372 7422 LPRUFE
ssssss
24
Orwavvoje 4z> FETS *fo de£ecd~ de*ftxtt(4 d^ai^uf
poinJt tnpuJh cu*A 4s> ialty te$n&*e Spaces
2177 / 24#p 2S-71 ^ Cluuige ftterajfl : OjdcUfcss •-£
2S7i / xkxk 30t>4»b **DCA oo* -se+d^uif-fc #
2S7X / Xxk K 520CT } "STMp X«EFDO*- go -fo «*4 &ta*4
24*3 / 7t>H( 1Z001 *clA*~ ignore -fa*Ui*g fcUnUks
SS3S / 4* */* feZ4 J, ««* vera** :
Version •£ FBT5 u>cU ^mm< :
V3AX_FT
#13
1>^C patefe — '
T
*-— F*rwia4~ pateAeS Abooe
b I Z\pg
25
#13
Bc*^ *&K^£ <^r FiiTT(_
f. €ug Jw a.ecess tcruAin*. u>Am*K iVi OFFSET MOOS'
14>IS/ 77&«f 771* ••^ CkA*- Sfc<p ** AtofcMm. *r Ffc£ «#*4c
€>f u»eo **v«f STE113* scales.
5*^1/ £031 T £*<* £ ''cu.-
^5-4 53\ 3gt2S LtfZSi "mD *<«-*
^5^4 54\ 1*3 2 30XS* 'Wj ftcc*-*
&$±S&\ 743^ 7*<*44 "^/H-"
#S"4S * \ 7#*1 103 Z > "TOO Of^fe-z"
26
#13
c
DEMO OF MIXED FORTRAN/ SABR CODING, ALLOWED IN
c
OS-8. THIS
LETS US DO PRIMES THAT ARE "REAL-
c
CFLOATING NOSO
AND LARGER THAN 204T.
s
JMP tTAG
/JUMP
TO START OF PROGRAM
s
CPAGE 1?
/MAKE
SURE THERE* S ROOM FOR FOLLOWING
s
LINEFD*
212
-
s
MINUS6*
•6
s
COUNT*
9
s
EJECT*
6
/SUBR. FOR QUICK VERTICAL TAB
5
TAD
MIMUS6
s
DCA
COUNT
s
TAD
L1NEFD
s
LOOP!*
TLS
/TYPE IT
s
WAIT*
TSF
/DONE YET?
5
JMP WAIT
/NO
S
ISZ
COUNT
/YES* TONE 6 YET?
s
JMP
LOOP1
/NO
s
CLA
CLL
/YES* CLEAN OUT 212
s
JMP
I EJECT
/HARDWARE RETURN TO MAIN PROG
s
/GENERATES 2 INSTRUCTIONS
c
THE
ABOVE IS A PURELY LOCAL SUBROUTINE
c
ALL
OF IT CAS BE CUT OUT*
EVEN -JMP tTAG-* IF
c
YOU
AREN'T
INTERESTED IN -EJECT*. IF SO*
c
THEN THE TAG -tTAG- CAN GO* TOO. CF. BELOWs
s
tTAG*
CLA
CLL
s
TAD
C2330
/DENORMALIZE -2ER0-
s
DCA
\ZERO
/IST WORD OF -ZERO-
BACK TO FORTRANs
27
#13
C 00 A CR/LF TO START t
90 WRITS < 1,350)
KOU»TR«0
S JM5 EJECT /6 LINE FEEDS
1 WRITE < 1,100), ZERO,
C ••ZERO" IS A TAKE WRITE— SEE FORMAT
REAS C1#350)#BOTM
IF CBOTH -5.) 1,2,2
2 WRITE (1,206), ZERO,
READ C 1,350), TOP
IF C5.E6 - TOP) 2,3,3
3 CONTINUE
S JMS EJECT /6 LINE FEEDS
C SHENANIGANS TO HAKE "BOTH" AN ODD NUMBER!
BOTH * BOTH/ 2. ♦ ZERO
BOTH - 2.*B0TH ♦ I.
C END OF SHENANIGANS. INITIALIZE -VALUE"!
VALUE « BOTH - 2.
C — < OUTER LOOP! >
16 VALUE * VALUE + 2»
IP < VALUE - TOP) 11,11,90
11 FACTOR • 1.
C — — -< INNER LOOP! >—
20 FACTOR - FACTOR ♦ 2.
QUOT » VALUE/FACTOR
F1X1T • QUOT ♦ ZERO
IF CFIXIT - OUOT> 21,16,10
21 IF CQUOT - FACTOR) 50,16,20
C -—--..-.-—.-_ < LOOPS END HERE »<
28
#13
C ALL POSSIBLE FACTORS FAILED, SO IT'S PRIMES
50 KOUNTR*XQUNTR*l
VRITE C1#300^#KOUNTR* VALUE
60 TO 10
C INFINITE PROGRAM* TILL HALTED C »C V1U. DO IT).
100 FORMAT < 'BOTTOM VALUE* >3t **F0.0>
200 FORMAT C* TOP VALUE, t *>F«.0)
C THE SILLY F0.0 IS THE OHLY WAY TO SET IT TO WPE TEXT
C VHEM VE INHIBIT THE CR/LF BY USING A COMMA <SEE PROGRAM LINES
C 1 AND 2* PREV. PAGE).
300 rORMAT O4*2X*P10«0>
350 FORMAT €F10*0>
END